﻿using GDM.Hogar.Entidades;
using GDM.Hogar.Repositorios.Contratos;
using GDM.Hogar.Repositorios.Core;
using GDM.Hogar.Repositorios.Soporte;
using System.Collections.Generic;
using System.Data;

namespace GDM.Hogar.Repositorios
{
    public class CargoRepositorio : Repositorio, ICargoRepositorio
    {
        public CargoRepositorio(IDbManager dbManager)
            : base(dbManager)
        {
        }

        protected override string ProcActualizar
        {
            get
            {
                return ProcedimientosAlmacenados.Cargo.Actualizar;
            }
        }

        protected override string ProcInsertar
        {
            get { return ProcedimientosAlmacenados.Cargo.Insertar; }
        }

        public IList<Cargo> ObtenerCargos()
        {
            IList<Parametro> parametros = new List<Parametro>();
            return Obtener<Cargo>(ProcedimientosAlmacenados.Cargo.ObtenerTodos, parametros);
        }

        public Cargo CrearCargo(string codigo)
        {
            IList<Parametro> parametros = new List<Parametro>();
            parametros.Add(CrearParametro("@Codigo", DbType.String, ParameterDirection.Input, codigo));
            return Insertar<Cargo>(parametros);
        }

        public void ActualizarCargo(Cargo cargo)
        {
            IList<Parametro> parametros = new List<Parametro>();
            parametros.Add(CrearParametro("@CargoId", DbType.Int64, ParameterDirection.Input, cargo.CargoId));
            parametros.Add(CrearParametro("@Codigo", DbType.String, ParameterDirection.Input, cargo.Codigo));
            Actualizar(parametros);
        }
    }
}